package com.dms.modules.order.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dms.modules.order.entity.UserCoupon;

import java.math.BigDecimal;
import java.util.List;

/**
 * 用户优惠券服务接口
 */
public interface UserCouponService extends IService<UserCoupon> {

    /**
     * 获取用户优惠券
     * @param userId 用户ID
     * @param couponId 优惠券ID
     * @return 用户优惠券
     */
    UserCoupon getUserCoupon(Long userId, Long couponId);

    /**
     * 获取用户可用优惠券列表
     * @param userId 用户ID
     * @param merchantId 商家ID
     * @param totalAmount 订单金额
     * @return 可用优惠券列表
     */
    List<UserCoupon> getAvailableCoupons(Long userId, Long merchantId, BigDecimal totalAmount);

    /**
     * 使用优惠券
     * @param userId 用户ID
     * @param couponId 优惠券ID
     * @param orderId 订单ID
     * @return 是否成功
     */
    boolean useCoupon(Long userId, Long couponId, Long orderId);

    /**
     * 领取优惠券
     * @param userId 用户ID
     * @param couponId 优惠券ID
     * @return 是否成功
     */
    boolean receiveCoupon(Long userId, Long couponId);
} 